﻿Public Enum enumBCTH
    KH = 1 'Kế hoạch
    TC = 2 'Tài chính tiền
    KHO = 3 'Kho
    TCSL = 4 'Tài chính số lượng
End Enum

Public Class CBCTH
    'Private _name As String
    Private _bcth As enumBCTH
    'Private _tcsl As Boolean
    Private _desc As String

    ''' <summary>
    ''' Giá trị cho biết là tài chính đã xác nhận tiền hay chưa
    ''' </summary>
    ''' <value></value>
    ''' <returns></returns>
    ''' <remarks></remarks>
    Public Property BCTH() As enumBCTH
        Get
            Return _bcth
        End Get
        Set(ByVal Value As enumBCTH)
            _bcth = Value
        End Set
    End Property

    '''' <summary>
    '''' Tên ký hiệu của BCTH
    '''' </summary>
    '''' <value></value>
    '''' <returns></returns>
    '''' <remarks></remarks>
    'Public Property NAME() As String
    '    Get
    '        Return _name
    '    End Get
    '    Set(ByVal Value As String)
    '        _name = Value
    '    End Set
    'End Property

    '''' <summary>
    '''' Giá trị cho biết là Tài chính đã xác nhận số lượng hay chưa
    '''' </summary>
    '''' <value></value>
    '''' <returns></returns>
    '''' <remarks></remarks>
    'Public Property TCSL() As Boolean
    '    Get
    '        Return _tcsl
    '    End Get
    '    Set(ByVal Value As Boolean)
    '        _tcsl = Value
    '    End Set
    'End Property

    ''' <summary>
    ''' Mô tả thông tin của BCTH
    ''' </summary>
    ''' <value></value>
    ''' <returns></returns>
    ''' <remarks></remarks>
    Public Property DESC() As String
        Get
            Return _desc
        End Get
        Set(ByVal Value As String)
            _desc = Value
        End Set
    End Property

    Public Overrides Function ToString() As String
        Return _desc
    End Function
End Class

Public Class CBCTHs
    'Public Shared Function GetTinhTrangPhieus() As ArrayList
    '    Dim aryKQ As New ArrayList
    '    'KH (BCTH = 1 và TCSL=False)
    '    aryKQ.Add(GetBCTH("KH"))
    '    'TCSL xác nhận (BCTH = 1 và TCSL=True)
    '    aryKQ.Add(GetBCTH("TCSL"))
    '    'TCT xác nhận (BCTH = 2 và TCSL=False)
    '    aryKQ.Add(GetBCTH("TCT"))
    '    'TCT xác nhận và TCSL xác nhận (BCTH = 2 và TCSL=True)
    '    aryKQ.Add(GetBCTH("TC"))
    '    Return aryKQ
    'End Function

    Public Shared Function GetTinhTrangPhieus() As ArrayList
        Dim aryKQ As New ArrayList
        aryKQ.Add(GetBCTH(enumBCTH.KH))
        aryKQ.Add(GetBCTH(enumBCTH.KHO))
        aryKQ.Add(GetBCTH(enumBCTH.TCSL))
        aryKQ.Add(GetBCTH(enumBCTH.TC))
        Return aryKQ
    End Function

    'Public Shared Function GetBCTH(ByVal pBCTH As String) As CBCTH
    '    Dim objItem As New CBCTH
    '    With objItem
    '        .NAME = pBCTH
    '        Select Case .NAME
    '            Case "KH"
    '                .NAME = "KH"
    '                .BCTH_ID = 1
    '                .TCSL = False
    '                .DESC = "Chưa xác nhận (KH)"
    '            Case "TCSL"
    '                .NAME = "TCSL"
    '                .BCTH_ID = 1 'TCSL Không quan tâm đến thông số này
    '                .TCSL = True
    '                .DESC = "Đã xác nhận số lượng (TCSL)"
    '            Case "TCT"
    '                .NAME = "TCT"
    '                .BCTH_ID = 2
    '                .TCSL = False
    '                .DESC = "Đã xác nhận tiền (TCT)"
    '            Case "TC"
    '                .NAME = "TC"
    '                .BCTH_ID = 2
    '                .TCSL = False
    '                .DESC = "Đã xác nhận tiền và số lượng (TC)"
    '        End Select
    '    End With
    '    Return objItem
    'End Function

    Public Shared Function GetBCTH(ByVal pBCTH As enumBCTH) As CBCTH
        Dim objItem As New CBCTH
        With objItem
            .BCTH = pBCTH
            Select Case .BCTH
                Case enumBCTH.KH
                    .DESC = "Kế hoạch xác nhận"
                Case enumBCTH.KHO
                    .DESC = "Kho xác nhận"
                Case enumBCTH.TCSL
                    .DESC = "Tài chính số lượng xác nhận"
                Case enumBCTH.TC
                    .DESC = "Tài chính tiền xác nhận"
            End Select
            .DESC &= " (" + [Enum].GetName(GetType(enumBCTH), .BCTH) + ")"
        End With
        Return objItem
    End Function

    Public Shared Function GetBCTH_HuyXacNhan(ByVal pBCTH As enumBCTH) As CBCTH
        Dim objItem As New CBCTH
        With objItem
            .BCTH = pBCTH
            Select Case .BCTH
                Case enumBCTH.KH
                    .DESC = "Kho hủy xác nhận"
                Case enumBCTH.KHO
                    .DESC = "Tài chính số lượng hủy xác nhận"
                Case enumBCTH.TCSL
                    .DESC = "Tài chính tiền hủy xác nhận"
            End Select
        End With
        Return objItem
    End Function

    'Public Shared Function GetBCTH(ByVal pBCTH_id As Integer, ByVal pTCSL As Boolean) As CBCTH
    '    Dim objItem As New CBCTH
    '    With objItem
    '        .BCTH_ID = pBCTH_id
    '        .TCSL = pTCSL
    '        Select Case pBCTH_id
    '            Case enumBCTH.KH
    '                If .TCSL = False Then
    '                    .NAME = "KH"
    '                    .DESC = "Chưa xác nhận (KH)"
    '                Else
    '                    .NAME = "TCSL"
    '                    .DESC = "Đã xác nhận số lượng (TCSL)"
    '                End If
    '            Case enumBCTH.TC
    '                If .TCSL = True Then
    '                    .NAME = "TC"
    '                    .DESC = "Đã xác nhận tiền và số lượng (TC)"
    '                Else
    '                    .NAME = "TCT"
    '                    .DESC = "Đã xác nhận tiền (TCT)"
    '                End If
    '        End Select
    '    End With
    '    Return objItem
    'End Function

    '''' <summary>
    '''' 
    '''' </summary>
    '''' <param name="pBCTH_id"></param>
    '''' <param name="pTCSL"></param>
    '''' <returns></returns>
    '''' <remarks></remarks>
    'Public Shared Function GetBCTH(ByVal pBCTH_id As Integer, ByVal pTCSL As Boolean) As CBCTH
    '    Dim objItem As New CBCTH
    '    With objItem
    '        .BCTH_ID = pBCTH_id
    '        .TCSL = pTCSL
    '        Select Case pBCTH_id
    '            Case enumBCTH.KH
    '                If .TCSL = False Then
    '                    .NAME = "KH"
    '                    .DESC = "Chưa xác nhận (KH)"
    '                Else
    '                    .NAME = "TCSL"
    '                    .DESC = "Đã xác nhận số lượng (TCSL)"
    '                End If
    '            Case enumBCTH.TC
    '                If .TCSL = True Then
    '                    .NAME = "TC"
    '                    .DESC = "Đã xác nhận tiền và số lượng (TC)"
    '                Else
    '                    .NAME = "TCT"
    '                    .DESC = "Đã xác nhận tiền (TCT)"
    '                End If
    '        End Select
    '    End With
    '    Return objItem
    'End Function


    'Public Shared Function GetBCTH_FULL(ByVal pBCTH_id As Integer) As CBCTH
    '    Dim objItem As New CBCTH
    '    With objItem
    '        .BCTH_ID = pBCTH_id
    '        Select Case pBCTH_id
    '            Case enumBCTH.KH
    '                .DESC = "Chưa xác nhận (KH)"
    '            Case enumBCTH.TCT
    '                .DESC = "Đã xác nhận (TC)"
    '        End Select
    '    End With
    '    Return objItem
    'End Function
End Class
